package com.cool.shark.controller;

import com.cool.shark.pojo.dto.OrderInserDto;
import com.cool.shark.pojo.vo.OrderStandardVo;
import com.cool.shark.pojo.vo.orderNumVo;
import com.cool.shark.service.OrderService;
import com.cool.shark.web.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Name: OrderController
 * @Author: 西风残叶
 * @Date: 2024/4/29 23:05
 * @Version: 1.0
 * @TODO: TODO
 */

@RestController
@Slf4j
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private OrderService service;

    /**
     * 插入订单信息
     *
     * @param orderDto 接收前端传来的订单信息，包含订单的详细数据
     * @return 返回操作结果，如果操作成功，则返回一个成功的JsonResult对象
     */
    @PostMapping("/insert")
    public JsonResult<Void> insert(@RequestBody OrderInserDto orderDto) {
        // 调用服务层方法，插入订单信息
        service.insert(orderDto);
        // 返回操作成功的JsonResult
        return JsonResult.ok();
    }
    /**
     * 获取用户订单列表
     *
     * @param userId 用户ID，用于查询该用户的订单信息
     * @return JsonResult<Object> 返回订单列表的JSON结果，包含订单信息的列表
     */
    @GetMapping("/list")
    public JsonResult<Object> list(@RequestParam("userId") Long userId) {
        // 记录请求时的用户ID信息
        log.info("userId:{}",userId);
        // 通过服务层查询指定用户ID的订单列表
        List<OrderStandardVo> list = service.list(userId);
        // 记录查询到的订单列表信息
        log.info("list:{}",list);
        // 返回订单列表的JSON结果
        return JsonResult.ok(list);
    }

    @GetMapping("/orderNum")
    public JsonResult<List<orderNumVo>> list2(@RequestParam("userId") Long userId) {
        // 记录请求时的用户ID信息
        log.info("userId:{}",userId);
        // 通过服务层查询指定用户ID的订单列表
        List<orderNumVo> list = service.orderNum(userId);
        // 记录查询到的订单列表信息
        log.info("list:{}",list);
        // 返回订单列表的JSON结果
        return JsonResult.ok(list);
    }
}
